/***************************************************************************************************
 *Copyright(C),2010-2016,Sumscope
 *FileName	:  system_util.cpp
 *Author	:  scofined.qi
 *Version	:  1.0
 *Date		:  2015/12/22
 *Desc		:  //用于主要说明此程序文件完成的主要功能
 *Relation :
 *Others	:  //其他内容说明
 *Function :  //主要函数列表，每条记录应包含函数名及功能简要说明
 *History	:
 * //修改历史记录列表，每条修改记录应包含修改日期、修改者及修改内容简介
 ***************************************************************************************************/
#include "system_util.h"

#include <QDir>

namespace qb {
namespace base {
namespace os {

BaseString tostr(int number) {
  BaseString str;
  while (number > 0) {
    char c = '0' + (number % 10);
    str.insert(0, &c, 1);
    number = number / 10;
  }
  return str;
}

BaseString fmtstr(const char* format, ...) {
  const size_t tsize = 1024;
  char buffer[tsize] = {0};
  memset(buffer, 0, tsize);
  va_list args;
  int ret;
  va_start(args, format);
  char* ptr = buffer;
  int maxcount = tsize;
#if WIN32
  ret = vsprintf_s(ptr, maxcount, format, args);
#else
  ret = vsnprintf(ptr, maxcount, format, args);
#endif
  va_end(args);
  return buffer;
}
WideString fmtstr(const wchar_t* format, ...) {
  const size_t tsize = 1024;
  wchar_t buffer[tsize] = {0};
  memset(buffer, 0, tsize);
  va_list args;
  int ret;
  va_start(args, format);
  wchar_t* ptr = buffer;
  int maxcount = tsize;
#if WIN32
  ret = vswprintf_s(ptr, maxcount, format, args);
#else
  ret = vswprintf(ptr, maxcount, format, args);
#endif
  va_end(args);
  return buffer;
}

bool MakePathExist(const char* szPath) {
  QDir dir;
  return dir.mkpath(szPath);
}

bool DeleteFolder(const char* lpszPath) {
  return QFile::remove(QString::fromUtf8(lpszPath));
}

}  // namespace os
}  // namespace base
}  // namespace qb
